﻿using Gadgeteer.Modules.DFRobotics;
using Gadgeteer.Modules.GHIElectronics;
using Microsoft.SPOT;
using GT = Gadgeteer;
using GTM = Gadgeteer.Modules;

namespace TestApp
{
    public partial class Program
    {
        private OptoRelay optoRelay = new OptoRelay(4);
        private int relay;

        // This method is run when the mainboard is powered up or reset.   
        private void ProgramStarted()
        {
            /*******************************************************************************************
            Modules added in the Program.gadgeteer designer view are used by typing 
            their name followed by a period, e.g.  button.  or  camera.
            
            Many modules generate useful events. Type +=<tab><tab> to add a handler to an event, e.g.:
                button.ButtonPressed +=<tab><tab>
            
            If you want to do something periodically, use a GT.Timer and handle its Tick event, e.g.:
                GT.Timer timer = new GT.Timer(1000); // every second (1000ms)
                timer.Tick +=<tab><tab>
                timer.Start();
            *******************************************************************************************/


            // Use Debug.Print to show messages in Visual Studio's "Output" window during debugging.
            Debug.Print("Program Started");

            button.ButtonPressed += button_ButtonPressed;
        }

        private void button_ButtonPressed(Button sender, Button.ButtonState state)
        {
            if (++relay > 4)
            {
                relay = 1;
            }

            switch (relay)
            {
                case 1:
                    optoRelay.Relay1 = !optoRelay.Relay1;
                    break;
                case 2:
                    optoRelay.Relay2 = !optoRelay.Relay2;
                    break;
                case 3:
                    optoRelay.Relay3 = !optoRelay.Relay3;
                    break;
                case 4:
                    optoRelay.Relay4 = !optoRelay.Relay4;
                    break;
            }
        }
    }
}